package com.alameda.menu.dto;

import com.alameda.base.dto.PageDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 菜单数据传递对象
 *
 * @author Lv
 * @date 2024/06/11
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "MenuDTO", description = "菜单")
public class MenuDTO extends PageDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    private String menuName;

    /**
     * 父级菜单id
     */
    @ApiModelProperty(value = "父级菜单id")
    private Long menuParentId;

    /**
     * 排列顺序
     */
    @ApiModelProperty(value = "排列顺序")
    private Integer menuOrderNumber;

    /**
     * 菜单组件
     */
    @ApiModelProperty(value = "菜单组件")
    private String menuComponent;

    /**
     * 菜单路径
     */
    @ApiModelProperty(value = "菜单路径")
    private String menuPath;

    /**
     * 菜单图标
     */
    @ApiModelProperty(value = "菜单图标")
    private String menuIcon;

    /**
     * 菜单权限  1admin  2editor
     */
    @ApiModelProperty(value = "菜单权限  1admin  2editor")
    private Integer menuPower;

    /**
     * 菜单详细路径
     */
    @ApiModelProperty(value = "菜单详细路径")
    private String menuPathSecond;

    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id")
    private Long createId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
     * 修改人id
     */
    @ApiModelProperty(value = "修改人id")
    private Long updateId;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标识符  0 未删除   1 已删除
     */
    @ApiModelProperty(value = "逻辑删除标识符  0 未删除   1 已删除")
    private Integer deleteFlag;

}
